//
//  NSDate+Extension.swift
//  swiftWeiBo
//
//  Created by MJT on 16/7/21.
//  Copyright © 2016年 MJT. All rights reserved.
//

import UIKit

extension NSDate {
    //根据时间字符串创建时间对象
    class func sinaDate(createAtStr: String) -> NSDate {
        let dt = NSDateFormatter()
        dt.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        //指定本地信息
        dt.locale = NSLocale(localeIdentifier: "en_US")
        let createAtDate = dt.dateFromString(createAtStr)!
        return createAtDate
    }

    //根据时间对象转成字符串
    var sinaDateString: String {
        //判断年份
        let dt = NSDateFormatter()
        // 指定本地化信息
        dt.locale = NSLocale(localeIdentifier: "en_US")
        //判断是今年
        if isThisYear(self) {
        //  判断是否是今天
        let calendar = NSCalendar.currentCalendar()
        if calendar.isDateInToday(self) {
        //  今天
        //  判断是否是在1分钟之前
        //let timeInterval1 = createAtDate.timeIntervalSinceDate(NSDate())
        //  它是负数，注意
        let timeInterval = abs(self.timeIntervalSinceNow)
        if timeInterval < 60 {
        //  表示1分钟之前
        return "刚刚"
        } else if timeInterval < 60 * 60 {
        let result = timeInterval / 60
        return "\(Int(result))分钟前"
        } else {
        let result = timeInterval / 3600
        return "\(Int(result))小时前"
        }


        } else if calendar.isDateInYesterday(self) {
        //  昨天
        dt.dateFormat = "昨天 HH:mm"

        } else {
        //  其他
        dt.dateFormat = "MM-dd HH:mm"
        }
        } else {
        // 不是今年更改格式化方式
        dt.dateFormat = "yyyy-MM-dd HH:mm"
        }
        return dt.stringFromDate(self)

    }
    //判断是否是今年
    private func isThisYear(createDate: NSDate)-> Bool {
        let currentDate = NSDate()
        let dt = NSDateFormatter()
        dt.dateFormat = "yyyy"
        dt.locale = NSLocale(localeIdentifier:"en_US")
        let createDateYear = dt.stringFromDate(createDate)
        let currentDateYear = dt.stringFromDate(currentDate)
        return createDateYear == currentDateYear
    }
}
